// var i;
// var $uI_GetZaZhong_UIBindings = require("./UI_GetZaZhong_UIBindings");
// var $bundleConfig = require("./BundleConfig");
// var $commonUtils = require("./CommonUtils");
// var $excel = require("./Excel");
// var $uIView = require("./UIView");
// var p = cc._decorator;
// var h = p.ccclass;
// var f = p.property;
// var g = p.inspector;
// var _ = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.auto_ui = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype._show = function (e) {
//         var t = $excel.Excel.shuiguo(e.shuiGuoId);
//         if (t) {
//             var o = this.auto_ui;
//             o.txt_titleLabel.string = t.newName;
//             var n = "player" + (e.shuiGuoId - 1e3) + "_5";
//             this._loadRes($bundleConfig.BundleNames.Common, "res/player/" + n, cc.SpriteFrame).then(function (e) {
//                 o.sp_icon.spriteFrame = e;
//             });
//             this._loadRes(
//                 $bundleConfig.BundleNames.Common,
//                 "res/tianfuicon/tianfu_" + e.shuiGuoId + "_1",
//                 cc.SpriteFrame
//             ).then(function (e) {
//                 o.sp_ciTiaoIcon.spriteFrame = e;
//             });
//             o.node_light.stopAllActions();
//             o.node_light.runAction(cc.repeatForever(cc.rotateBy(5, 360)));
//             var i = -1;
//             $excel.Excel.shuiguohecheng_all.forEach(function (t) {
//                 if (t.shuiguoId == e.shuiGuoId && 0 != t.newTianFuBuff) {
//                     i = t.newTianFuBuff;
//                 }
//             });
//             if (-1 != i) {
//                 var a = $excel.Excel.shuiguobuff(i);
//                 if (a) {
//                     var r = a.value;
//                     var c = a.buffdesc;
//                     var d = [(c = $commonUtils.default.replaceSymbols(c, "\\n", [""]))];
//                     if (-1 != c.indexOf("X")) {
//                         d = c.split("X");
//                     }
//                     var p = "";
//                     for (var h = 0; h < d.length; h++) {
//                         var f = d[h];
//                         if (-1 != f.indexOf("#")) {
//                             var g = '<color=#ffff00 click="ShowZaZhongInfo">' + t.newName + "</c>";
//                             g = "<u>" + g + "</u>";
//                             f = $commonUtils.default.replaceSymbols(f, "#", [g]);
//                         }
//                         p += "<color=#ffffff>" + f + "</c>";
//                         if (h < d.length - 1 && r) {
//                             p += "<color=#71ff00>" + r[h] + "</c>";
//                         }
//                     }
//                     p = "<outline color=#000000 width=3>" + (p = "<b>" + p + "</b>") + "</outline>";
//                     this.auto_ui.rtxt_ciTiaoInfo.string = p;
//                 }
//             }
//             $commonUtils.default.LoadLevel5Effect(
//                 e.shuiGuoId,
//                 this.auto_ui.node_qiFather,
//                 this.auto_ui.node_huoFather,
//                 this._loadRes.bind(this)
//             );
//         } else {
//             this._close();
//         }
//     };
//     t.prototype._clickListener = function (e) {
//         switch (e) {
//             case this.auto_ui.btn_closeBtn:
//                 this._close();
//         }
//     };
//     __decorate([f($uI_GetZaZhong_UIBindings.default)], t.prototype, "auto_ui", void 0);
//     return __decorate([h], t);
// })($uIView.default);
// exports.default = _;


// import UI_GetZaZhong_UIBindings from "./UI_GetZaZhong_UIBindings";
// import { BundleNames } from "./BundleConfig";
// import CommonUtils from "./CommonUtils";
// import { Excel } from "./Excel";
// import UIView from "./UIView";

// // 当前版本2.4.13需要从 'cc' 模块中引入装饰器
// const { ccclass, property } = cc._decorator;

// /**
//  * 建议名称: AdvancedZaZhongView
//  * 高级的杂种视图类，继承自UIView
//  */
// @ccclass
// class UI_GetZaZhong extends UIView {
//     //自动生成的UI绑定
//     @property(UI_GetZaZhong_UIBindings) auto_ui: UI_GetZaZhong_UIBindings = null;

//     /**
//      * 建议方法名: showView
//      * 显示视图，并根据水果ID加载对应的资源和设置UI
//      * @param {Object} e 包含shuiGuoId的对象
//      */
//     _show(e: { shuiGuoId: number }): void {
//         const shuiguoData = Excel.shuiguo(e.shuiGuoId);
//         if (shuiguoData) {
//             const autoUI = this.auto_ui;
//             autoUI.txt_titleLabel.string = shuiguoData.newName;

//             const playerRes = `player${e.shuiGuoId - 1000}_5`;
//             this._loadRes(BundleNames.Common, `res/player/${playerRes}`, cc.SpriteFrame)
//                 .then((spriteFrame) => {
//                     autoUI.sp_icon.spriteFrame = spriteFrame;
//                 });

//             const tianfuIcon = `tianfu_${e.shuiGuoId}_1`;
//             this._loadRes(BundleNames.Common, `res/tianfuicon/${tianfuIcon}`, cc.SpriteFrame)
//                 .then((spriteFrame) => {
//                     autoUI.sp_ciTiaoIcon.spriteFrame = spriteFrame;
//                 });

//             autoUI.node_light.stopAllActions();
//             autoUI.node_light.runAction(cc.repeatForever(cc.rotateBy(5, 360)));

//             let tianFuBuffId = -1;
//             Excel.shuiguohecheng_all.forEach((shuiguoItem) => {
//                 if (shuiguoItem.shuiguoId === e.shuiGuoId && shuiguoItem.newTianFuBuff !== 0) {
//                     tianFuBuffId = shuiguoItem.newTianFuBuff;
//                 }
//             });

//             if (tianFuBuffId !== -1) {
//                 const buffData = Excel.shuiguobuff(tianFuBuffId);
//                 if (buffData) {
//                     let desc = buffData.buffdesc;
//                     const values = [desc = CommonUtils.replaceSymbols(desc, "\\n", [""])];
//                     if (desc.includes("X")) {
//                         values.splice(0, 1, ...desc.split("X"));
//                     }
//                     let formattedDesc = "";
//                     values.forEach((part, index) => {
//                         if (part.includes("#")) {
//                             const link = `<color=#ffff00 click="ShowZaZhongInfo">${shuiguoData.newName}</c>`;
//                             const highlightedLink = `<u>${link}</u>`;
//                             part = CommonUtils.replaceSymbols(part, "#", [highlightedLink]);
//                         }
//                         formattedDesc += `<color=#ffffff>${part}</c>`;
//                         if (index < values.length - 1 && buffData.value) {
//                             formattedDesc += `<color=#71ff00>${buffData.value[index]}</c>`;
//                         }
//                     });

//                     formattedDesc = `<outline color=#000000 width=3>${formattedDesc}</outline>`;
//                     autoUI.rtxt_ciTiaoInfo.string = formattedDesc;
//                 }
//             }

//             CommonUtils.LoadLevel5Effect(
//                 e.shuiGuoId,
//                 autoUI.node_qiFather,
//                 autoUI.node_huoFather,
//                 this._loadRes.bind(this)
//             );
//         } else {
//             this._close();
//         }
//     }

//     /**
//      * 建议方法名: handleClick
//      * 处理点击事件
//      * @param {Object} e 事件对象
//      */
//     _clickListener(e: cc.Button): void {
//         switch (e) {
//             case this.auto_ui.btn_closeBtn:
//                 this._close();
//                 break;
//         }
//     }

//     /**
//      * 使用传递的资源路径加载资源
//      * @param {string} bundleName 包名
//      * @param {string} path 资源路径
//      * @param {any} type 资源类型
//      * @returns {Promise<any>} 返回加载的资源
//      */
//     _loadRes(bundleName: string, path: string, type: any): Promise<any> {
//         return new Promise((resolve, reject) => {
//             cc.assetManager.loadBundle(bundleName, (err, bundle) => {
//                 if (err) {
//                     reject(err);
//                     return;
//                 }
//                 bundle.load(path, type, (err, asset) => {
//                     if (err) {
//                         reject(err);
//                         return;
//                     }
//                     resolve(asset);
//                 });
//             });
//         });
//     }

//     /**
//      * 建议方法名: closeView
//      * 关闭视图
//      */
//     _close(): void {
//         this.node.removeFromParent();
//         this.node.destroy();
//     }
// }

// export default UI_GetZaZhong;

import UIGetZaZhongUIBindings from "./UI_GetZaZhong_UIBindings";
import { BundleNames } from "./BundleConfig";
import CommonUtils from "./CommonUtils";
import { Excel } from "./Excel";
import UIViewBase from "./UIView";

// 当前版本2.4.13需要从 'cc' 模块中引入装饰器
const { ccclass, property } = cc._decorator;

/**
 * 建议名称: AdvancedZaZhongView
 * 高级的杂种视图类，继承自UIView
 */
@ccclass
class ViewGetZaZhong extends UIViewBase {
    //自动生成的UI绑定
    @property(UIGetZaZhongUIBindings) auto_ui: UIGetZaZhongUIBindings = null;

    /**
     * 建议方法名: showView
     * 显示视图，并根据水果ID加载对应的资源和设置UI
     * @param {Object} e 包含shuiGuoId的对象
     */
    _show(eventData: { shuiGuoId: number }): void {
        const shuiGuoData = Excel.shuiguo(eventData.shuiGuoId);
        if (shuiGuoData) {
            const autoUI = this.auto_ui;
            autoUI.txt_titleLabel.string = shuiGuoData.newName;

            const playerResourceName = `player${eventData.shuiGuoId - 1000}_5`;
            this._loadRes(BundleNames.Common, `res/player/${playerResourceName}`, cc.SpriteFrame)
                .then((spriteFrame) => {
                    autoUI.sp_icon.spriteFrame = spriteFrame;
                });

            const tianfuIconName = `tianfu_${eventData.shuiGuoId}_1`;
            this._loadRes(BundleNames.Common, `res/tianfuicon/${tianfuIconName}`, cc.SpriteFrame)
                .then((spriteFrame) => {
                    autoUI.sp_ciTiaoIcon.spriteFrame = spriteFrame;
                });

            autoUI.node_light.stopAllActions();
            autoUI.node_light.runAction(cc.repeatForever(cc.rotateBy(5, 360)));

            let tianFuBuffId = -1;
            Excel.shuiguohecheng_all.forEach((shuiguoItem) => {
                if (shuiguoItem.shuiguoId === eventData.shuiGuoId && shuiguoItem.newTianFuBuff !== 0) {
                    tianFuBuffId = shuiguoItem.newTianFuBuff;
                }
            });

            if (tianFuBuffId !== -1) {
                const buffData = Excel.shuiguobuff(tianFuBuffId);
                if (buffData) {
                    let desc = buffData.buffdesc;
                    let values: string[] = [desc = CommonUtils.replaceStringSymbols(desc, "\\n", [""])];
                    if (desc.includes("X")) {
                        values = desc.split("X");
                    }
                    let formattedDesc = "";
                    values.forEach((part, index) => {
                        if (part.includes("#")) {
                            const link = `<color=#ffff00 click="ShowZaZhongInfo">${shuiGuoData.newName}</c>`;
                            const highlightedLink = `<u>${link}</u>`;
                            part = CommonUtils.replaceStringSymbols(part, "#", [highlightedLink]);
                        }
                        formattedDesc += `<color=#ffffff>${part}</c>`;
                        if (index < values.length - 1 && buffData.value) {
                            formattedDesc += `<color=#71ff00>${buffData.value[index]}</c>`;
                        }
                    });

                    formattedDesc = `<outline color=#000000 width=3>${formattedDesc}</outline>`;
                    autoUI.rtxt_ciTiaoInfo.string = formattedDesc;
                }
            }

            CommonUtils.loadLevel5Effect(
                eventData.shuiGuoId,
                autoUI.node_qiFather,
                autoUI.node_huoFather,
                this._loadRes.bind(this)
            );
        } else {
            this._close();
        }
    }

    /**
     * 建议方法名: handleClick
     * 处理点击事件
     * @param {Object} e 事件对象
     */
    _clickListener(button: cc.Button): void {
        switch (button) {
            case this.auto_ui.btn_closeBtn:
                this._close();
                break;
        }
    }

    /**
     * 使用传递的资源路径加载资源
     * @param {string} bundleName 包名
     * @param {string} path 资源路径
     * @param {any} type 资源类型
     * @returns {Promise<any>} 返回加载的资源
     */
    _loadRes(bundleName: string, path: string, type: any): Promise<any> {
        return new Promise((resolve, reject) => {
            cc.assetManager.loadBundle(bundleName, (error, bundle) => {
                if (error) {
                    reject(error);
                    return;
                }
                bundle.load(path, type, (error, asset) => {
                    if (error) {
                        reject(error);
                        return;
                    }
                    resolve(asset);
                });
            });
        });
    }
}

export default ViewGetZaZhong;